The present invention is directed, in general, to digital signal processors and, more specifically, to a system and method for increasing sample rate converter filter coefficient derivation and running speed.
Digital signal processors (DSPs) currently have a plethora of applications, and the importance of these classes of devices will only continue to grow. For example, DSPs may be used as a digital filter in an environment such as digital audio. In the digital audio environment, the DSP may perform analogous functionality similar to a passive or an active analog filter. However, there are certain problems which may arise in the context of using the DSP as a passive or active filter. For instance, issues pertaining to accommodating differing input and output DSP signal data rates may arise.
One proposed solution associated with accommodating differing input and output DSP signal data rates using such techniques as data interpolation. Interpolations of the input data signal to achieve an acceptable output data signal may involve, however, trade-offs in levels of precision or level of accuracy of the output data. For instance, as a tolerance for approximate solutions pertaining to calculated values of the output signal decreases, the computational, architectural or processing complexity of the DSP may disadvantageously increase, and design trade-offs and decisions should be made. The prior art discloses certain attempts at implementing differing approaches to signal interpolations performed by a DSP.
For instance, in one prior-art approach, a digital signal, which may represent an audio signal that has been sampled at a given rate, is first xe2x80x9cup-sampledxe2x80x9d or xe2x80x9cover-sampledxe2x80x9d, i.e., between every digital sample at a given frequency there is inserted equidistantly between at least value of zero. Up-sampling effectively increases the sample rate of the input data signal, perhaps for reasons such as helping to avoid aliasing problems and running afoul of the Nyquist sampling theorem.
Next, a Finite Impulse Response (xe2x80x9cFIRxe2x80x9d) filter is used. The FIR filter is programmed with the various tap values desired for a given characteristic, such as the skirt, dB dropoff rate, attenuation rate, passband, and so on. After the FIR filter has been applied, the prior art teaches re-sampling (xe2x80x9cdecimatingxe2x80x9d) the FIR filtered data, and then linear interpolating the now-decimated data to achieve the desired output sample rate.
The over-sampling FIR plus linear interpolator strategy involves heavy real-time computations of multiplication and addition, and requires large memory space to store the FIR tap coefficients, although the reduction of interpolation factor makes its implementation easier than a single-stage FIR implementation.
A second approach, employing a Continuously Variable Digital Delay (xe2x80x9cCVDDxe2x80x9d) Element, has also been tried. The CVDD has been described in xe2x80x9cA Continuously Variable Digital Delay Elementxe2x80x9d by C. W. Farrow, which is hereby incorporated by reference in its entirety, and shall therefore only be described in a summary fashion.
Briefly, the CVDD Element uses a FIR filter which employs and synchronizes a controllable delay relationship between the input data signal and the output data signal. By changing the delay between the input data signal and the output data signal, the FIR filter of Farrow has the ability to interpolate between samples in the data stream of a band-limited signal.
Advantageously, the CVDD of Farrow does not need large memory space to run since it calculates filter coefficients in real-time with its pre-optimized coefficient taps and a time-varying parameter, a delay xe2x80x9cxcex1xe2x80x9d. However, employing the CVDD of Farrow involves vector and matrix operation, which can lead to quite heavy online computation. Another disadvantage of the CVDD of Farrow is the online calculation of xcex1n, which may cause extra difficulties in integerization when the algorithm is implemented on a DSP without a floating-point co-processor.
Accordingly, what is needed in the art is a system and method of filtering and interpating digital data of differing sample rates that overcomes the deficiencies of the prior art.
To address the above-discussed deficiencies of the prior art, the present invention provides a system for, and method of, increasing sample rate converter filter coefficient derivation and running speed and a digital signal processor incorporating the system or the method. In one embodiment, the system includes: (1) a coefficient table containing a matrix of predefined filter coefficients for each of a plurality of alpha intervals and (2) an intra-range interpolator that adjusts the predefined filter coefficients for a specific alpha within the alpha interval to yield filter coefficients specific to the alpha.
The present invention introduces the broad concept of deriving filter coefficients by first retrieving coefficients valid over a range of alpha intervals from memory and then interpolating the coefficients to yield coefficients specific to a particular alpha.
In one embodiment of the present invention, the intra-range interpolator linearly interpolates the predefined filter coefficients to yield the filter coefficients specific to the alpha. However, those skilled in the art may find nonlinear interpolation useful in a given application.
In one embodiment of the present invention, the sample rate converter comprises a doubler that doubles an input sample rate. Predoubling improves subsequent interpolation, but is not necessary to the present invention.
In one embodiment of the present invention, the sample rate converter comprises a sample interpolator and a sample decimator. The sample interpolator and decimator cooperate to apply the coefficients to a stream of input samples to yield a stream of output samples taken at a desired output rate.
In one embodiment of the present invention, the system the sample interpolator provides samples to the sample decimator. Alternatively, the samples may be decimated before being interpolated, in which case the sample decimator would provide samples to the sample interpolator.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.